package GUI;

import session.SessionInterface;

/**
 * Developed for NTT - All is an Entity
 * Questa classe permette di caricare nella lingua di defalt impostata nel sistema tutti i messaggi da vedere a video per gli utenti
 * @author Alessandro Pollace
 * @version 0.1
 */
public class LanguageLoader {

    /**
     * Istanza della classe SessionInterface usata per comunicare con i dati
     */
    private SessionInterface session;

    /**
     * Costruttore della classe language loader che istanzia l'oggetto SessionInterface
     * @throws Exception Impossibile caricare il SessionInterface
     */
    public LanguageLoader() throws Exception {
        this.session = new SessionInterface();
    }

    /**
     * Permette di richiedere la Caption di un attributo di un entity
     * @param NameEntity Nome dell'entity
     * @param NameAttribute Nome dell'attributo
     * @return Caption dell'attributo
     * @throws Exception Impossibile trovare l'attributo o l'entity
     */
    public String getCaption(String NameEntity, String NameAttribute) throws Exception {
        return session.getCaption(NameEntity, NameAttribute);
        //return null;
    }

    /**
     * Permette di richiedere la Descrizione di un attributo di un entity
     * @param NameEntity Nome dell'entity
     * @param NameAttribute Nome dell'attributo
     * @return Descrizione dell'attributo
     * @throws Exception Impossibile trovare l'attributo o l'entity
     */
    public String getDescription(String NameEntity, String NameAttribute) throws Exception {
        return session.getDescription(NameEntity, NameAttribute);
    }

    /**
     * Permette di richiedere la Caption di un elemento di sistema, configurato nei file di lingua
     * @param NameAttribute nome dell'elemento di sistema
     * @return Caption del sistema
     * @throws Exception Impossibile trovare la caption di sistema
     */
    public String getSysCaption(String NameAttribute) throws Exception {
        String caption = session.getSystemControlCaption(NameAttribute);
        if (caption == null) {
            caption = "{NotFound-SysCaption: " + NameAttribute + "}";
        }
        return caption;
    }
}
